home *** CD-ROM | disk | FTP | other *** search
/ Network CD 2 / Network CD - Volume 2.iso / programs / internet / tcp / amitcp / amitcp-src-22.lha / AmiTCP-2.2 / src / devs / rhslip / README.Rhialto < prev    next >
Encoding:
Text File  |  1993-10-07  |  4.0 KB  |  96 lines

  1. Short: SANA2 rh(c)slip.device
  2. Uploader: rhialto@mbfys.kun.nl (Olaf Seibert)
  3. Type: comm/net
  4. Version: $Id: README.Rhialto,v 1.1 1993/08/17 00:00:00 rhialto Exp $
  5.  
  6. This is a modified version of Commodores example SANA driver:
  7. the slip.device. As released, it contained a number of bugs and
  8. misfeatures. This version has been renamed to rh(c)slip.device.
  9.  
  10. Installation:
  11. ------------
  12. -   It is best to get the full, original SANA developer package. It
  13.     is available on Fish disk number 779. Newer versions may be
  14.     available by ftp.
  15.  
  16. -   Summary: Place the file rh(c)slip.device in DEVS:Networks/ and
  17.     rhslip<unit>.config in ENV(ARC):SANA2/. If this is not found,
  18.     cslip<unit>.config is tried (if applicable), then slip<unit>.config.
  19.     This is for compatibility with other (c)slip devices.
  20.  
  21. Additions:
  22. ---------
  23. -   Now also header-compressed slip. (See RFC-1144 by Van Jacobson) This 
  24.     is even compatible with non-comressing slip drivers, as it first 
  25.     tries to trigger the other side of the connection into using 
  26.     compression as well, but ceases these attempts if they appear 
  27.     unsuccessful. In any case, once the other side starts sending 
  28.     compressed headers, it is turned on in the local-to-remote direction 
  29.     as well.
  30.  
  31. Corrected bugs:
  32. --------------
  33.  
  34. -   The AbortIO function erroneously assumed that A3 was the Unit
  35.     pointer. Even Commodore's official example in the RKM gets that
  36.     wrong (see page 567).
  37.  
  38. -   S2_GETGLOBALSTATS always returned an error, even though it worked.
  39.     Well, it got the microseconds of the last online wrong.
  40.  
  41. -   S2_TRACKTYPE had two bugs: it would always think a type that you
  42.     requested to track would not yet be tracked, even if it would
  43.     get the packet type right, which it didn't. As a result, every
  44.     call to S2_TRACKTYPE allocated memory for the statistics, yet
  45.     S2_GETTYPESTATS always claimed the type wasn't being tracked.
  46.  
  47. -   S2_GETSTATIONADDRESS should return 2 addresses, the current address,
  48.     and the ROM address. It used to give only a 0.0.0.0 "ROM" address in
  49.     the wrong location. Now, it considers the address in the config
  50.     file the "ROM" address, and the one from S2_CONFIGINTERFACE is
  51.     the current address. Initially both are the same (and both are
  52.     futher ignored since they are meaningless to slip).
  53.  
  54. -   S2_DEVICEQUERY didn't give all required information, and claimed a
  55.     weird size for it.
  56.  
  57. -   Flags set when opening the serial device should be in io->io_SerFlags,
  58.     not in the flags argument to OpenDevice().
  59.  
  60. -   Returned read requests from the serial device were sized by their
  61.     io_Length instead of io_Actual.
  62.  
  63. -   Serial input could potentially overflow the input buffer.
  64.  
  65. -   The code assumed, by using registered arguments, that the callback 
  66.     routines would have their arguments in the correct registers.  Now 
  67.     the type of the pointer explicitly declares the calling convention.
  68.  
  69. -   Eliminated use of SLIPBase as __builtin_getreg(14).
  70.  
  71. Corrected misfeatures:
  72. ---------------------
  73.  
  74. -   The device now runs at the same priority as the opener. This helps
  75.     preventing starvation of the opener in case of high amounts of
  76.     input.
  77.  
  78. -   Uses the serial.device's SERF_EOFMODE mode. This prevents the
  79.     slip.device from hogging the CPU at high priority, and even at equal
  80.     priority improves efficiency. If this does not work together with
  81.     a replacement serial device, you can change the definition of
  82.     EOFMODE at the top of device_funcs.c, or add DEF=EOFMODE=0 to the
  83.     compilation options.
  84.  
  85. Debatable issues:
  86. ----------------
  87.  
  88. -   Optionally, serial device reads are only initiated when they are
  89.     (already) requested by the caller. This is contrary to the SANA
  90.     philosophy, and therefore makes debugging protocol stacks more
  91.     difficult. On the other hand, why not use the serial device's buffer to
  92.     keep input, instead of dropping it? This also reduces CPU load in case
  93.     the device is open but unused for some reason.  (As it was, the
  94.     slip.device would continually read and decode packets, even if nobody
  95.     wanted them.)
  96.